﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace JingQiao.Ads.Infrastructure.Data.NH.Repository
{
    using Domain.Model;
    using Domain.Model.DomainObject;
    using Domain.Model.Repository;

    public class DestinationRepository : BaseRepository<IDestination>, IDestinationRepository
    {
        public DestinationRepository(IContext context)
            : base(context)
        {
        }

        public override void Add(IDestination entity)
        {
            base.Add(entity);
        }

        public bool IsHasAdvertisement(int destId)
        {
            return false;
        }

        public IDestination FindById(int id)
        {
            Check.Argument.IsNotNegativeOrZero(id, "id");
            return null;
        }

        public IDestination FindBySiteName(string siteName)
        {
            Check.Argument.IsNotEmpty(siteName, "siteName");
            return null;
        }

        public IDestination FindDefaultByConfigId(int configinfoId)
        {
            Check.Argument.IsNotNegativeOrZero(configinfoId, "configinfoId");
            return null;
        }

        public IQueryable<IDestination> FindByIds(string destinations)
        {
            Check.Argument.IsNotEmpty(destinations, "destinations");
            return null;
        }

        public IQueryable<IDestination> FindByRegionIds(string regionIds)
        {
            Check.Argument.IsNotEmpty(regionIds, "regionIds");
            return null;
        }

        public PagedResult<IDestination> FindByParentId(int parentId, int pageSize, int pageIndex)
        {
            return null;
        }

        public int CountByParentId(int parentId)
        {
            return 0;
        }

        public IQueryable<IDestination> FindAll()
        {
            return null;
        }

        public IQueryable<IDestination> FindByConfigId(int configId)
        {
            return null;
        }

        public IQueryable<IDestination> FindByConfigIdAndRegionIds(int configId, string regionIds)
        {
            Check.Argument.IsNotEmpty(regionIds, "regionIds");
            return null;
        }

        public int CountByConfigIdAndRegionIds(int configId, string regionIds, string keyWord)
        {
            Check.Argument.IsNotEmpty(regionIds, "regionIds");
            return 0;
        }

        public PagedResult<IDestination> FindByConfigIdAndRegionIds(int configId, string regionIds, string keyWord, int pageSize, int pageIndxe)
        {
            Check.Argument.IsNotNegativeOrZero(pageSize, "pageSize");
            return null;
        }

        public PagedResult<IDestination> FindByConfigId(int configId, int pageSize, int pageIndex)
        {
            return null;
        }

        public int CountByConfigId(int configId)
        {
            return 0;
        }
    }
}
